package com.gang.music.system.service;

import com.baomidou.mybatisplus.service.IService;
import com.gang.music.common.RegisterStatistics;
import com.gang.music.system.entity.User;

import java.util.Date;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author gang
 * @since 2017-10-26
 */
public interface UserService extends IService<User> {

	/**
	 * 注册
	 */
	void registerUser(User user);

	/**
	 * 今天注册的用户
	 */
	List<User> findUserByTodayRegister();

	/**
	 * 验证用户的唯一性
	 */
	Boolean ckeckLoginName(String loginName);

	/**
	 * 查询所有用户,同时查询出所收藏的歌曲
	 */
	List<User> findAllWithSongList();

	/**
	 * 获取所有的用户数量
	 */
	Long queryTotalUserNum();

	/**
	 * 根据userId获取菜单权限
	 * @param type 
	 */
	List<Integer> findMenuIdsByUserId(Long userId);

	/**
	 * 根据userId获取角色
	 */
	List<String> findUserRoleCodes(Long id);

	/**
	 * 根据userId获取角色Id,以便页面回显
	 */
	List<Integer> findRoleIdsByUserId(Long userId);

	/**
	 * 根据userId获取所有的菜单url
	 */
	List<String> findPermssionsByUserId(Long userId);


	/**
	 * 统计用户注册数量
	 * @return
	 */
	List<RegisterStatistics> findRegisterStatistics(Date daysBreforeDate, Date currDate);
}
